1673

8 分钟

#Lua 的 if 条件语句

条件语句根据条件的真(true)假(false)来控制程序的执行流程。

Lua 的 if 条件语句语法结构如下:

if 条件1 then 代码块1 elseif 条件2 then 代码块2 -- ... elseif 条件n then 代码块n else 代码块n+1 end
  • 如果“条件1”为 true 则执行“代码块1”
  • 否则,如果“条件2”为 true 则执行“代码块2”
  • ...
  • 如果“条件n”为 true 则执行“代码块n”
  • 否则,执行“代码块n+1”

开始

条件1?

代码块1

结束

条件2?

代码块2

条件n?

代码块 n

代码块 n+1

Lua 支持以下比较运算符:

  • ==: 等于
  • ~=: 不等于
  • <: 小于
  • >: 大于
  • <=: 小于等于
  • >=: 大于等于

这些操作的结果是 boolean 类型:值要么是 true,要么是 false

示例:

SUNNY = 1 -- 晴天 RAINY = 2 -- 雨天 local weather = SUNNY if weather == SUNNY then -- 如果是晴天 print("出门记得戴太阳镜") elseif weather == RAINY then -- 否则,如果是雨天 print("出门记得带上雨伞") end

运行结果:

出门记得戴太阳镜

#变量的作用域

作用域是指程序中定义的变量(或其他标识)符的可见性和生命周期范围,决定了变量(或其他标识)可以在哪些位置被使用。局部变量的作用域为其所在的代码块(例如 if 代码块)。

示例:

local x = 10 -- 作用域是当前文件 if true then local y = 20 -- 作用域是当前 if 代码块 end if false then local y = 30 -- 作用域是当前 if 代码块,与前一个 if 中的 y 毫无关系 elseif true then local z = 40 -- 作用域是当前 elseif 代码块 else m = 30 -- 全局变量,作用域是全局 end

Lua 的条件语句、循环语句、函数以及 do ... end 块都是独立的代码块(作用域)。

#do ... end 代码块

Lua 的 do ... end 代码块可用创建独立的作用域,常用于限制局部变量的可用范围。

do -- 代码块 end

示例:

do local x = 10 print("代码块内部 x = ", x) end print("代码块外部 x = ", x)

运行结果:

代码块内部 x = 10 代码块外部 x = nil

创建于 2025/10/2

更新于 2025/10/2